#ifndef PTR_H
#define PTR_H

/**
Nectarine Utility Project is a software interface for the web system 'demovibes'
Copyright (C) 2010  Alexandre LAURENT

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

website: http://code.google.com/p/nectarine-utility-project/
e-mail: lw.demoscene@gmail.com
**/

template <class T>
class Ptr
{
private:
    T* ptr;

public:
    Ptr():ptr(NULL) {}
    Ptr(T* ptr):ptr(ptr) {}
    ~Ptr() { delete ptr; }

    T* operator-> () const { return ptr; }
};

template <class T>
QDebug operator<<(QDebug dbg, const Ptr<T>& ptr)
{
    return dbg << ptr;
}

#endif
